#!/usr/bin/env bash
# deploy.sh
# 可以用来部署前端和后端的模块

set -e 

##################### 获取工作目录 #####################
# 参考：http://www.gimoo.net/t/1502/54ea928e14fef.html
SOURCE="$0"
while [ -h "$SOURCE"  ]; do                              # resolve $SOURCE until the file is no longer a symlink
    DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd  )"
    SOURCE="$(readlink "$SOURCE")"
    [[ $SOURCE != /*  ]] && SOURCE="$DIR/$SOURCE"        # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE"  )" && cd .. && pwd  )"
#######################################################

app=$(basename "$DIR")   # app="ems"
workdir=$DIR             # workdir="/opt/$app"

# 参数：<模块>，可能的值：
#   固定为 archive
module="archive"
src_dir="$workdir/src/ems-archive/target"
dst_dir="$workdir/module/$module"
src_jar="ems-archive.jar"
dst_jar="ems-archive.jar"

# 使用说明
usage() {
    echo -e "-------------------------------------------------------"
    echo -e "HELP: 用法: ./deploy.sh"
    echo -e "-------------------------------------------------------"
    exit 1
}

# 函数：部署后端模块
deploy_server_module(){
  echo "INFO: [$module] 部署后端模块 ，将更新 $dst_jar"

  # 如果部署目录不存在，创建一下
  if [ ! -d "$dst_dir" ]; then
    echo "INFO: [$module] 创建部署目录：$dst_dir"
    mkdir -p "$dst_dir"
  fi

  # 确认 jar 包存在
  if [ ! -f "$src_dir/$src_jar" ]; then
    echo "ERR : [$module] 文件 [$src_dir/$src_jar] 不存在，需要先执行构建"
    exit 1
  fi
  
  # 替换新的 jar 文件
  echo "INFO: [$module] 复制替换 $src_dir/$src_jar --> $dst_dir/$dst_jar"
  cp "$src_dir/$src_jar" "$dst_dir/$dst_jar"
  echo "SUCC: [$module] 更新 jar 包成功：$dst_dir/$dst_jar"
}


# 程序入口
case "$module" in
  "archive")
    deploy_server_module
  ;;
  *)
    echo "ERR : [$module] 程序入口无法匹配<模块>"
    usage
  ;;
esac

